---
id: reconnection
sidebar_position: 7
title: 断线重连
sidebar_label: 6.7 断线重连
---

## 一、说明
所谓断线重连，即tcp客户端在断开服务器后，主动发起的再次连接请求。

## 二、使用Reconnection插件
使用断线重连非常简单，仅一行代码完成。
```csharp
.UsePlugin()
.ConfigurePlugins(a=> 
{
   a.UseReconnection(5, true, 1000);//如需永远尝试连接，tryCount设置为-1即可。
});
```
**注意：**断线重连，必须满足以下几个要求：

1. 必须完成第一次连接
2. 必须是被动断开，如果是客户端主动调用Close、Disconnect等方法主动断开的话，不会生效。
3. 必须有显式的断开信息，也就是说，直接拔网线的话，不会立即生效，会等tcp保活到期后再生效。



## 三、使用PollingKeepAlive插件仅企业版
企业版使用断线重连，在兼容上述方法的同时，还支持一种极为霸道的连接方式，即轮询式连接，使用也非常简单，仅一行代码完成。
```csharp
.UsePlugin()
.ConfigurePlugins(a=> 
{
   a.Add<PollingKeepAlivePlugin<TcpClient>>()
                        .SetTick(1000);//每秒检查
});
```
该方式一般用于无人值守的客户端。
**注意：**PollingKeepAlive断线重连，必须满足以下几个要求：

1. 不要和UseReconnection一同使用
2. 必须有显式的断开信息，也就是说，直接拔网线的话，不会立即生效，会等tcp保活到期后再生效。
